package com.huluobo.high3videoproject.mvp.fullscreen.presenter;

import com.huluobo.high3videoproject.bean.CommentBeanResult;
import com.huluobo.high3videoproject.bean.FollowBean;
import com.huluobo.high3videoproject.bean.LikeBean;
import com.huluobo.high3videoproject.bean.SendCommentBeanResult;
import com.huluobo.high3videoproject.bean.VideoBeanResult;

import io.reactivex.Observable;
import retrofit2.http.Query;

/**
 * 全屏播放的协议
 */
public interface VideoFullscreenContract {
    interface Model {
        //加载视频列表
        Observable<VideoBeanResult> getVideoList(int page, int size);

        //关注
        Observable<FollowBean> followUser(String authname);

        //点赞
        Observable<LikeBean> likeVideo(int videoId);

        //取消点赞
        Observable<LikeBean> noLikeVideo(int videoId);

        Observable<CommentBeanResult> getCommentList(int videoId);

        Observable<CommentBeanResult> sendComment(String msg, int videoId);
    }

    interface Presenter {
        void getCommentList(int videoId);

        void sendComment(String msg, int videoId);

        void getVideoList(int page, int size);

        void followUser(String authname);

        void likeVideo(int videoId);

        void noLikeVideo(int videoId);
    }

    interface View {
        void onGetVideoListSuccess(VideoBeanResult videoBeanResult);

        void onGetVideoListFailed(String error);

        void onFollowSuccess(FollowBean followBean);

        void onFollowFailed(String error);

        void onLikeVideoSuccess(LikeBean likeBean);

        void onLikeVideoFailed(String error);

        void onNoLikeVideoSuccess(LikeBean likeBean);

        void onNoLikeVideoFailed(String error);

        void onGetCommentListSuccess(CommentBeanResult commentBeanResult);

        void onGetCommentListFailed(String error);

        void onSendCommentSuccess(CommentBeanResult sendCommentBeanResult);

        void onSendCommentFailed(String error);
    }
}
